package com.mkx.samples;

import com.mkx.creationals.factory.*;

/**
 * 工厂方法模式演示类
 * 演示如何使用工厂创建产品对象
 */
public class FactoryDemo {
    public static void main(String[] args) {
        System.out.println("===== 工厂方法模式演示 =====");
        
        // 创建具体创建者A
        Creator creatorA = new ConcreteCreatorA();
        // 使用创建者A的业务逻辑（内部会创建并使用产品）
        creatorA.businessLogic();
        
        // 创建具体创建者B
        Creator creatorB = new ConcreteCreatorB();
        // 使用创建者B的业务逻辑（内部会创建并使用产品）
        creatorB.businessLogic();
        
        // 工厂方法的优势：客户端只需要知道工厂，不需要知道具体产品的创建细节
        System.out.println("工厂方法模式演示完成\n");
    }
}